Synthesis Of LISP Functions From Examples
نویسنده
چکیده
A system, ca l l ed GAP, which automat ica l ly produces LISP func t ions from example computations is descr ibed. GAP uses a knowledge of LISP programming to i n d u c t i v e l y i n f e r the LISP f u n c t i o n 'obviously ' intended by a given ' i o p a i r ' ( i . e . a s ing le input to be presented to the f u n c t i o n and the output which must r e s u l t ) . The system is w r i t t e n in POPCORN (a CONNIVER-like extension of POP2) and represents i t s knowledge of LISP p rocedura l l y .
منابع مشابه
Functional Programs: Conversions between Deep and Shallow Embeddings
This paper presents a method which simplifies verification of deeply embedded functional programs. We present a technique by which proof-certified equations describing the effect of functional programs (shallow embeddings) can be automatically extracted from their operational semantics. Our method can be used in reverse, i.e. from shallow to deep embeddings, and thus for implementing certifying...
متن کاملInductive Program Synthesis as Induction of Context - Free Tree Grammars
We present an application of grammar induction in the domain of inductive program synthesis. Synthesis of recursive programs from input/output examples involves the solution of two subproblems: transforming examples into straightforward programs and folding straightforward programs into (a set of) recursive equations. In this paper we focus on the second part of the synthesis problem, which cor...
متن کاملSISP/1: An Interactive System Able to Synthesize Functions from Examples
SISP/i is an interactive system whose goal is the automatic inference of LISP functions from a finite set of examples {(x., f(x.))) where x. is a list belonging to the domain of the function f we want to infer. SISP/I is able to infer the recur sive form of many linear recursive functions and its stop-condition. SISP/l tries to work with one example only. When it fails, it asks for new ones: u...
متن کاملCLOS discriminating functions and user-defined specializers
We discuss the possibility for users of CLOS to extend the mop:specializer metaobject class in the de facto standard Metaobject Protocol for Common Lisp, and how this possibility interacts with ANSI-standardized functionality. To motivate the discussion, we provide two simple examples: a specializer on a disjunction of classes and a simple pattern-matching specializer; we note the extent to whi...
متن کاملExpansion-Passing Style: A General Macro Mechanism
The traditional Lisp macro expansion facility inhibits several important forms of expansion control. These include selective expansion of subexpressions, expansion of subexpressions using modified expansion functions, and expansion of application and variable expressions. Furthermore, the expansion algorithm must treat every special form as a separate case. The result is limited expressive powe...
متن کامل